1. Field of the Invention
The present invention relates to modeling and validating information consumed by services.
2. Description of Background
In the field of computer science, a service is a software system designed to support interoperable machine-to-machine interaction over a network. A service exposes external interfaces doing something meaningful and offers bindings that consumers bind to. A service can be described in terms of its external interactions using, for example, Web Services Description Language (see http://en.wikipedia.org/wiki/Web_Services_Description_Langu age). Services typically have a collection of ports with appropriate bindings and an optional detailed description of the interfaces in the port type. If available, interface descriptions include input and output descriptions.
A service modeling language, such as the Unified Modeling Language (see http://www.ibm.com/developerworks/rational/library/05/419_s oa/), models the basic service description. The description includes port type, interfaces and bindings, and optionally other services invoked by internal processing of the service. Modeling the internal invocation of other services is done for wiring or orchestration purposes only, without providing any way of analyzing service realization and information consumption aspects.
A process is a flow of activities (see http://en.wikipedia.org/wiki/Process). A Process modeling language, such as BPML or BPMN (see http://en.wikipedia.org/wiki/Business_Process_Modeling_Lang uage), models the basic activity flow of a process as well as the input and output interface of that process.
A process execution modeling language, such as BPEL (see http://en.wikipedia.org/wiki/BPEL), in the context of SOA (Service-Oriented Architecture), models a process as an orchestration of humans and services. The process invokes services during its execution (often referred to as processes executing over services). Modeling the invocation of services is done for wiring or orchestration purposes only, without providing any way of analyzing information consumption aspects.
An information model (see http://en.wikipedia.org/wiki/Information_model) is an abstract, formal representation of information entities that includes their properties, relationships and the operations that can be performed on them. An information model is classically used in a data or information architecture context. An information model may be additionally used as a shared semantic context for definition of interfaces.
Current service and process modeling languages include the inputs and outputs of services and processes, however they do not take into account the additional information consumed internally by the services and processes. This lack of information representation can lead to information mismatch upon downstream assembly when, for some reason, appropriate information is not available. Current modeling mechanisms are unable to detect these issues, as they do not include the necessary model elements to perform information verification. The information mismatch issues may occur in both transactional and bulk processing contexts.
As can be seen above, information consumed by services and process is not part of current modeling approaches. Hence, currently there are no quantitative and qualitative control mechanisms for availability of information. Based on standard models there is no way to verify the balanced “equation” between services, processes and information needed to support business solutions. However, in order to avoid expensive rework, it is critical to detect an information mismatch problem before initiating assembly of the solution. The earlier such problems are identified, the less expensive they are to correct. Furthermore, a programmer should not have to figure out information consumption and information quality characteristics. Such characteristics are the concern of information architecture.